home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-07-31 | 27.8 KB | 1,145 lines |
- * --------------------------------
- * 3rd Day Intro - © 1991 SECTION 9
- * --------------------------------
- * 8*8 Font mit 2 Planes
- * LOGO 3 Planes
- * Noise-Replay
- * --------------------------------
- * LMB - next page
- * RMB - quit
- * JOYB - slower scroll
-
- * INCDIRs are at INCBINs !!
- * Die Inc-Daten sind die selben wie bei der GRMBLWRZ-Intro!!
-
- COL_VERZ = 140 internal system-data
- PAGE_VERZ = 1000 don't change
-
- SECTION another_small_masterpiece_bla_bla,CODE
- prg movem.l d0-a6,-(a7)
- bsr.b init
- bsr.w kill_system
- bsr.w INIT_MUSIC
- lea $dff000,a6
- lea dummy(pc),a5
- bsr.w print
- loop btst #1,(a5)
- beq.b .mouse
- bra.b .print
- .mouse btst #6,$bfe001
- bne.b .next
- .print bsr.w print
- lea page_cnt(pc),a0
- move.w #PAGE_VERZ,(a0)
- bclr #1,(a5)
- .next btst #2,$16(a6)
- bne.s loop
- bsr.w END_MUSIC
- bsr.w awake_system
- bsr.w END_MUSIC
- movem.l (a7)+,d0-a6
- rts
-
- init bsr.w fill copper colors
- lea page_ptr(pc),a0
- lea pages(pc),a1
- move.l a1,(a0)
- lea star_p+2,a0
- lea stars,a1
- move.l a1,d0
- move.w d0,4(a0)
- swap d0
- move.w d0,(a0)
- lea scrptr(pc),a0
- lea scrtext(pc),a1
- move.l a1,(a0)
- lea planes+2,a0
- lea logo,a1
- moveq #3-1,d7
- .lp bsr.w init_it
- addq.l #8,a0
- lea 2464(a1),a1
- dbf d7,.lp
- lea txtcop+2,a0
- lea txtdat,a1
- bsr.b init_it
- addq.l #8,a0
- lea [352/8]*150(a1),a1
- bsr.b init_it
- lea back,a1
- lea backcop+2,a0
- bsr.b init_it
- lea empty,a1
- lea emp1cop+2,a0
- bsr.b init_it
- lea emp2cop+2,a0
- bsr.b init_it
- lea emp3cop+2,a0
- bsr.b init_it
- lea emp4cop+2,a0
- bsr.b init_it
- lea scrcop+2,a0
- lea scrdat+[368/8],a1
- bsr.b init_it
- addq.l #8,a0
- lea 368(a1),a1
- *bsr.b init_it
- *rts
- init_it move.l a1,d0
- move.w d0,4(a0)
- swap d0
- move.w d0,(a0)
- rts
-
- newirq movem.l d0-a6,-(a7)
- lea.l $dff000,a6 base-reg
- lea dummy(pc),a5
- bset #0,(a5) als irq_sync in 'loop'
- lea page_cnt(pc),a0
- subq.w #1,(a0)
- bne.b .lame
- bset #1,(a5)
- move.w #PAGE_VERZ,(a0)
- .lame
- btst #7,$bfe001
- beq.b .slow
- bsr.b scroll
- .slow bsr.b scroll
-
- bsr.w colors
- bsr.w move_stars
- bsr.w PLAY_MUSIC
- move.w #$4020,$9c(a6) see ya'
- movem.l (a7)+,d0-a6
- rte
-
- scroll lea counter(pc),a2 immer in a2
- tst.b (a2)
- bne.b .scroll_only
- move.l scrptr(pc),a1
- move.b (a1),d2 char in d2
- lea fontlst(pc),a1
- moveq #0,d1
- .search move.b 0(a1,d1.w),d0
- beq.b .unknwn end of fontlst = 0
- cmp.b d2,d0
- beq.b .found
- addq.w #1,d1
- bra.b .search
- .unknwn moveq #26,d1 offset für 'SPACE'
- .found lea proplst(pc),a1
- move.b 0(a1,d1.w),(a2) char-breite neu in counter
- lea font,a0
- add.l d1,a0 a0 -> char in font
- lea scrdat+[368/8]+[[368-8]/8],a1
- moveq #0,d0
- moveq #0,d1
- moveq #[640/8],d2
- moveq #[368/8],d3
- moveq #16-1,d7
- .wblit2 btst #14,2(a6)
- bne.s .wblit2
- .copy move.b 0(a0,d0.w),0(a1,d1.w) copy char in scroll-area
- add.l d2,d0
- add.l d3,d1
- dbf d7,.copy
- lea scrptr(pc),a0 increase scroll-ptr
- addq.l #1,(a0)
- move.l (a0),a1
- tst.b (a1)
- bne.b .no_scrtext_end
- lea scrtext(pc),a1
- move.l a1,(a0)
- .no_scrtext_end
- .scroll_only
- subq.b #1,(a2) a2 = counter von oben
- lea scrdat,a1
- lea 2(a1),a0 scrdat+2
- moveq #-1,d0
- moveq #0,d1
- move.w #%1111100111110000,d2
- .wblit btst #14,2(a6)
- bne.s .wblit
- move.l a0,$50(a6) A-PT (source)
- move.l a1,$54(a6) D-PT (dest)
- move.l d0,$44(a6) BLTAMASK
- move.w d1,$42(a6) BLTCON1
- move.w d1,$64(a6) A-MOD
- move.w d1,$66(a6) D-MOD
- move.w d2,$40(a6) BLTCON0
- move.w #[[16+1]*64]+[368/16],$58(a6) BLTSIZE/START
- rts
-
- print lea page_ptr(pc),a0
- move.l (a0),a2
- moveq #2,d4 pos in line
- moveq #15-1,d6 15 lines/page
- .loop2 moveq #40-1,d7 40 chars/line
- .loop move.b (a2)+,d2 char in d2
- lea fontlst(pc),a1
- moveq #0,d1
- .search move.b 0(a1,d1.w),d0
- beq.b .unknwn end of fontlst = 0
- cmp.b d2,d0
- beq.b .found
- addq.w #1,d1
- bra.b .search
- .unknwn moveq #26,d1 offset für 'SPACE'
- .found lea font,a0
- add.l d1,a0 a0 -> char in font
- lea txtdat,a1
- add.l d4,a1
- moveq #0,d0
- moveq #0,d1
- moveq #[640/8],d2
- moveq #[352/8],d3
- moveq #8-1,d5
- .copy move.b 0(a0,d0.w),0(a1,d1.w) copy char 1st plane
- add.l d2,d0
- add.l d3,d1
- dbf d5,.copy
- add.l #[[352/8]*[150-8]],d1
- moveq #8-1,d5
- .copy2 move.b 0(a0,d0.w),0(a1,d1.w) copy char 2nd plane
- add.l d2,d0
- add.l d3,d1
- dbf d5,.copy2
- addq.l #1,d4 next char
- cmp.b #" ",(a2)
- beq.b .no_wait
- bclr #0,(a5) dummy
- .wait btst #0,(a5)
- beq.b .wait
- .no_wait
- lea $dff000,a6
- btst #2,$16(a6)
- beq.b .out
- dbf d7,.loop char loop
- add.l #[[352/8]*9]+4,d4
- dbf d6,.loop2 line loop
-
- lea page_ptr(pc),a0
- tst.b (a2)
- bne.b .next
- lea pages(pc),a2
- .next move.l a2,(a0)
- .out rts
-
- colors lea col_cnt(pc),a0
- subq.w #1,(a0)
- bne.b col_out
- move.w #COL_VERZ,(a0)
- lea cols(pc),a0
- lea 30(a0),a1
- lea 60(a0),a2
- move.w (a0),d0
- move.w (a1),d1
- move.w (a2),d2
- moveq #15-1,d7
- .loop move.w 2(a0),(a0)+
- move.w 2(a1),(a1)+
- move.w 2(a2),(a2)+
- dbf d7,.loop
- move.w d0,-(a0)
- move.w d1,-(a1)
- move.w d2,-(a2)
- fill lea colscop+2,a0 fill in cols
- lea cols(pc),a1
- moveq #15-1,d7
- .loop2 move.w (a1),(a0)
- move.w 30(a1),4(a0)
- move.w 60(a1),8(a0)
- lea 16(a0),a0
- addq.l #2,a1
- dbf d7,.loop2
- col_out rts
-
- move_stars
- lea stars+1,a0
- moveq #[[[end_stars-stars]/8]/3]-1,d7
- .st_lp addq.b #1,(a0)
- addq.b #2,8(a0)
- addq.b #3,16(a0)
- lea 24(a0),a0
- dbf d7,.st_lp
- rts
-
- kill_system
- move.l $4.w,a6
- lea gfxname(pc),a1
- jsr -408(a6)
- move.l d0,a1
- lea oldcop1(pc),a0
- move.l $26(a1),(a0)
- lea oldcop2(pc),a0
- move.l $32(a1),(a0)
- jsr -414(a6)
- lea $dff000,a6
- lea intena(pc),a0
- move.w $1c(a6),(a0)
- lea dmacon(pc),a0
- move.w $2(a6),(a0)
- lea adkcon(pc),a0
- move.w $10(a6),(a0)
- move.w #$7fff,$9a(a6)
- bsr.b wait_vert_blank
- move.w #$7fff,$96(a6)
- lea newcop,a0
- move.l a0,$80(a6)
- move.w #[%1000000111100000!$8200],$96(a6)
- lea oldirq(pc),a0
- move.l $6c.w,(a0)
- lea newirq(pc),a0
- move.l a0,$6c.w
- move.w #$7fff,$9c(a6)
- move.w #$c020,$9a(a6)
- rts
- wait_vert_blank
- btst #0,$5(a6)
- beq.s wait_vert_blank
- .loop btst #0,$5(a6)
- bne.s .loop
- rts
- awake_system
- move.w #$7fff,$9a(a6) $dff000 in a6 !!!
- bsr.b wait_vert_blank
- move.w #$7fff,$96(a6)
- move.l oldcop1(pc),$80(a6)
- move.l oldcop2(pc),$84(a6)
- move.l oldirq(pc),$6c.w
- move.w dmacon(pc),d0
- or.w #$8000,d0
- move.w d0,$96(a6)
- move.w adkcon(pc),d0
- or.w #$8000,d0
- move.w d0,$9e(a6)
- move.w intena(pc),d0
- or.w #$c000,d0
- move.w #$7fff,$9c(a6)
- move.w d0,$9a(a6)
- rts
- oldirq dc.l " by "
- oldcop1 dc.l "Thom"
- oldcop2 dc.l "as K"
- intena dc.w "es"
- dmacon dc.w "sl"
- adkcon dc.w "er"
- scrptr dc.l $20000000
- col_cnt dc.w COL_VERZ
- page_cnt dc.w PAGE_VERZ
- page_ptr dc.l 0
- counter dc.b 0
- dummy dc.b 0
- gfxname dc.b "graphics.library",0
- fontlst dc.b "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- dc.b " 0123456789"
- dc.b "!?.,:;()"
- dc.b "#/'+-&*$©"
- dc.b "abcdefghijklmnopqrstuvwxyz",0
- proplst dc.b 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
- dc.b 7,8,8,8,8,8,8,8,8,8,8
- dc.b 4,8,4,5,4,5,8,8
- dc.b 8,8,5,8,8,8,8,7,8
- dc.b 8,8,8,8,8,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
-
-
- * AB HIER IST DEIN SCROLLTEXT ...
-
- scrtext dc.b "AMIGA INDUSTRIES & SPREADPOINT present in 1991: "
- dc.b " * 3rd Day II * "
- dc.b "Coded as lots of our high quality utilities by "
- dc.b "SECTION 9/AI for AISP !!! So this fine piece finally"
- dc.b " released on the fucking Crystal - Anarchy - Silents"
- dc.b " party in Denmark on 27th December 1991 !!! This was our"
- dc.b " year... We joined our powers together on friendship "
- dc.b "and not to be the fastest or the best or anything like "
- dc.b "this shit.. So Munster and me also did some hard critics "
- dc.b "on the scene - and so lots of guys dislike us - but we "
- dc.b "are against the business... So no matter what will happen -"
- dc.b " Amiga Industries & Spreadpoint will stay forever in Co-"
- dc.b "Opperation - until our crews are alive ... 'signed: Ai & Sp"
- dc.b " - '86 till no end... So greet us only as aisp in the "
- dc.b "future .... wait for our soon comging demos from tip "
- dc.b "and amicom - and of course always some nice utilities... "
- dc.b " Andy over to Section 9... "
- dc.b " By the way: this small piece is called "
- dc.b "'GRMBLWRZ!' ... You want to know what that "
- dc.b "means ... We don't know! "
- dc.b "When Section 9 coded this, suddenly "
- dc.b "some Lemmings jumped out of "
- dc.b "his monitor (with parachutes), climbed his keyboard "
- dc.b "(some were climbers) and walked around on the keys. "
- dc.b " That's where this name came from ........ We guess. "
- dc.b " "
- dc.b "Press right mouse-button to quit. "
- dc.b "Now restarting ... "
- dc.b " "
- dc.b 0 * <- END OF SCROLLTEXT
-
-
- * AB HIER DIE PAGES (JEWEILS GENAU 15 ZEILEN MIT 40 ZEICHEN!!)
- * es ist egal, wieviele pages angehängt werden, Hauptsache die
- * Länge und die Breite stimmen (15*40) [SEC]
-
- pages dc.b " ************************************ "
- dc.b " * * "
- dc.b " * AMIGA INDUSTRIES & SPREADPOINT * "
- dc.b " * * "
- dc.b " ************************************ "
- dc.b " "
- dc.b " present in the last days of 1991: " ; first/1992 ?!
- dc.b " "
- dc.b " 3rd Day II - Gfx-Ripper "
- dc.b " ----------------------- "
- dc.b " "
- dc.b " Now working also with OS2.0 "
- dc.b " and with 1 MB CHIP-Ram machines. "
- dc.b " "
- dc.b " * Press left mouse-button * "
-
- dc.b " "
- dc.b " The 3rd Day GFX-Ripper was originally "
- dc.b " made by SvEinstein of Action Force "
- dc.b " and adapted to OS 2.0 and 1MB CHIP-Ram "
- dc.b " by Section 9 of AI/SP. "
- dc.b " "
- dc.b " Note to all Coders: "
- dc.b " ------------------- "
- dc.b " The ECS isn't 100 percent compatible "
- dc.b " to the 'old' (v1.3) system. "
- dc.b " If you have an own copperlist, you "
- dc.b " must set the DIWSTRT ($008e) at the "
- dc.b " beginning of your coppercrap, other- "
- dc.b " wise there will be shown NO planes. "
- dc.b " "
-
- dc.b " " * DIE
- dc.b " * AMIGA INDUSTRIES & SPREADPOINT * " * SEITE
- dc.b " SEND FRIENDLY HANDSHAKES TO: " * BLEIBT
- dc.b " " * SO
- dc.b " SUBWAY (GEORGE & MARC) - TRSI (ALL) " * !!
- dc.b " FAIRLIGHT - LEGEND - SCOOPEX - SR "
- dc.b " PRISONERS - QUARTEX - CRYSTAL - HQC "
- dc.b " THE WIZARDS - PHENOMENA - CRUSADERS "
- dc.b " UNITED FORCES - NEMESIS - BLACK MONKS "
- dc.b " THE SILENTS - ANARCHY - INV. CRIME "
- dc.b " SWITCH - SKYLINE - AGILE - QUADLITE "
- dc.b " SUPPLEX - FACTOR 5 - STARFRONTIERS "
- dc.b " BRAINSTORM - THE COMPANY - ALCATRAZ "
- dc.b " VENTURE - ALPHA FLIGHT - BEERMACHT "
- dc.b " "
-
- dc.b " " * DIE
- dc.b " " * SEITE
- DC.B " "
- dc.b " ORACLE - AVENGER - VISION FACTORY " * BLEIBT
- dc.b " DEFJAM & CCS - HORIZON - SCROOGE " * SO
- dc.b " INFINITVE PERFECTION - POWER - " * !!
- dc.b " FCKW - BYTERAPERS - ACCESSION - IBB "
- dc.b " SETROX - D-TECT - PURE METAL CODERS "
- dc.b " RAZOR 1911 - DIGITAL - LEPROSY "
- dc.b " IMPACT INC. - COMA - CYTAX - DEFCON 1 "
- dc.b " PBA - VISION - REBELS - SANITY "
- dc.b " PROMAX & KEFRENS - NETWORK - FLASH "
- dc.b " "
- dc.b " "
- dc.b " "
-
- dc.b " " * DIE
- dc.b " " * SEITE
- dc.b " SCAMPY - HOMEBOY & THUNDERCAT " * BLEIBT
- dc.b " SAURON - PHIL DOUGLAS - DEPECHE " * AUCH
- dc.b " JOE - TIP & MANTRONIX - PANTHER " * SO
- dc.b " CHAOS - LOWTEC - E605 - JOE PANIC " * !!
- dc.b " N.O.I.S.E. - RADWAR - MR. ZEROPAGE " * !!!!!
- dc.b " VOGUE - THOMAS LANDBOURG - ULTIMAX "
- dc.b " PHIL/THRUST - PARADISE - KRISTALL/SR "
- dc.b " BLACK GHOST & STARGROOVE - WHITEHEAD "
- dc.b " MAHONEY - WIZLER - JOHN PLAYER - "
- dc.b " IRATA - FLYNN - HAMSTER - DDT - E$G "
- dc.b " ICS - AND ALL OUR OTHER FRIENDS... "
- dc.b " "
- dc.b " "
-
- dc.b " " * DIE
- dc.b " * THE CREDITS * " * SEITE
- dc.b " --------------- " * BLEIBT
- dc.b " " * SO
- dc.b " GRMBLWRZ!CODE ........ SECTION 9 " * !!
- dc.b " GRMBLWRZ!TEXTS ............ ANDY "
- dc.b " GRMBLWRZ!GFX ... SECTION 9 & TOM "
- dc.b " GRMBLWRZ!MUZAK ............ EDDY "
- dc.b " "
- dc.b " "
- dc.b " This small masterpiece is of course "
- dc.b " 100 percent OS2.0 compatible and will "
- dc.b " work on every 'normal' Amiga. "
- dc.b " There is NO absolut adress in here! "
- dc.b " "
-
- dc.b " ************************** " * DIE
- dc.b " * SECTION 9 special PAGE * " * SEITE
- dc.b " ************************** " * BLEIBT
- dc.b " " * AUCH
- dc.b "This small GRMBLWRZ! was written in half" * SO
- dc.b "an hour by me, myself & some lemmings! " * !!
- dc.b " " * !!!!!
- dc.b " Special Greeetix fly to: "
- dc.b " "
- dc.b "Alex - MaC! - Biggi - Christine - Simone"
- dc.b "Astrid (2x) - Sybille - Claudia - Steffi"
- dc.b "all A500+ Freax - Ray Cokes (MTV Europe)"
- dc.b "Nils & Frank (N.O.I.S.E. Produktions) "
- dc.b "my dog - my mouse - my phone - and to a "
- dc.b "special person (D.) who will know. ;-)"
-
-
- dc.b 0 * <- END OF PAGES
-
- cnop 0,2
- cols dc.w $ffc,$fec,$fdc,$fcc,$fce,$fcf,$dcf,$ccf,$cdf,$cff
- dc.w $cfd,$cfc,$efc,$ffc,$ffe
- dc.w $886,$776,$876,$766,$767,$767,$768,$668,$678,$788
- dc.w $687,$686,$776,$776,$887
- dc.w $443,$443,$433,$433,$433,$434,$334,$334,$334,$344
- dc.w $344,$343,$443,$443,$444
-
- * Amiga Noise/ProTracker (32 Instr.) Replayroutine
- * ------------------------------------------------
- * fixed as ASM-Reloc-Code by SECTION 9 in 1991
- INIT_MUSIC
- movem.l d0-a6,-(a7)
- lea nt_data,a0
- move.l a0,a1
- lea $3b8(a1),a1
- moveq #$7f,d0
- moveq #0,d1
- nt_loop move.l d1,d2
- subq.w #1,d0
- nt_lop2 move.b (a1)+,d1
- cmp.b d2,d1
- bgt.s nt_loop
- dbf d0,nt_lop2
- addq.b #1,d2
- lea nt_samplestarts(pc),a1
- asl.l #8,d2
- asl.l #2,d2
- add.l #$43c,d2
- add.l a0,d2
- move.l d2,a2
- moveq #$1e,d0
- nt_lop3 moveq #0,d7
- move.l d7,(a2)
- move.l a2,(a1)+
- moveq #0,d1
- move.w 42(a0),d1
- asl.l #1,d1
- add.l d1,a2
- lea $1e(a0),a0
- dbf d0,nt_lop3
- lea nt_speed(pc),a0
- move.b #6,(a0)
- lea $dff0a8,a0
- moveq #0,d0
- move.w d0,(a0)
- move.w d0,$10(a0)
- move.w d0,$20(a0)
- move.w d0,$30(a0)
- lea nt_songpos(pc),a0
- move.b d0,(a0)+
- move.w d0,(a0)+ nt_pattpos
- move.b d0,(a0) nt_counter
- bset #1,$bfe001
- bra.b nt_silence
- END_MUSIC
- movem.l d0-a6,-(a7)
- moveq #0,d0
- bclr #1,$bfe001
- nt_silence
- lea $dff000,a0
- move.w d0,$a8(a0)
- move.w d0,$b8(a0)
- move.w d0,$c8(a0)
- move.w d0,$d8(a0)
- move.w #$f,$96(a0)
- movem.l (a7)+,d0-a6
- rts
- PLAY_MUSIC
- movem.l d0-a6,-(a7)
- moveq #0,d0
- lea logo+[[352/8]*51]+2,a0
- move.l d0,(a0)
- lea logo+[[352/8]*52]+2,a0
- move.l d0,(a0)
- lea logo+[[352/8]*53]+2,a0
- move.l d0,(a0)
- lea logo+[[352/8]*54]+2,a0
- move.l d0,(a0)
- lea logo+[[352/8]*55]+2,a0
- move.l d0,(a0)
- lea nt_data,a0
- lea nt_counter(pc),a1
- addq.b #$1,(a1)
- move.b (a1),D0
- cmp.b nt_speed(pc),D0
- blt.s nt_nonew
- moveq #0,d7
- move.b d7,(a1)
- bra.w nt_getnew
- nt_nonew
- lea nt_voice1(pc),a6
- lea $dff0a0,a5
- bsr.w nt_checkcom
- lea nt_voice2(pc),a6
- lea $dff0b0,a5
- bsr.w nt_checkcom
- lea nt_voice3(pc),a6
- lea $dff0c0,a5
- bsr.w nt_checkcom
- lea nt_voice4(pc),a6
- lea $dff0d0,a5
- bsr.w nt_checkcom
- bra.w nt_endr
- nt_arpeggio
- moveq #0,d0
- move.b nt_counter(pc),d0
- divs #$3,d0
- swap d0
- cmp.w #$0,d0
- beq.s nt_arp2
- cmp.w #$2,d0
- beq.s nt_arp1
- moveq #0,d0
- move.b $3(a6),d0
- lsr.b #4,d0
- bra.s nt_arp3
- nt_arp1 moveq #0,d0
- move.b $3(a6),d0
- and.b #$f,d0
- bra.s nt_arp3
- nt_arp2 move.w $10(a6),d2
- bra.s nt_arp4
- nt_arp3 asl.w #1,d0
- moveq #0,d1
- move.w $10(a6),d1
- lea nt_periods(pc),a0
- moveq #$24,d7
- nt_arploop
- move.w (a0,d0.w),d2
- cmp.w (a0),d1
- bge.s nt_arp4
- addq.l #2,a0
- dbf d7,nt_arploop
- rts
- nt_arp4 move.w d2,$6(a5)
- rts
- nt_getnew
- lea nt_data,a0
- move.l a0,a3
- move.l a0,a2
- lea $c(a3),a3
- lea $3b8(a2),a2
- lea $43c(a0),a0
- moveq #0,d0
- move.l d0,d1
- move.b nt_songpos(pc),d0
- move.b (a2,d0.w),d1
- asl.l #8,d1
- asl.l #2,d1
- add.w nt_pattpos(pc),d1
- lea nt_dmacon(pc),a1
- moveq #0,d7
- move.w d7,(a1)
- lea $dff0a0,a5
- lea nt_voice1(pc),a6
- bsr.s nt_playvoice
- lea $dff0b0,a5
- lea nt_voice2(pc),a6
- bsr.s nt_playvoice
- lea $dff0c0,a5
- lea nt_voice3(pc),a6
- bsr.s nt_playvoice
- lea $dff0d0,a5
- lea nt_voice4(pc),a6
- bsr.s nt_playvoice
- bra.w nt_setdma
- nt_playvoice
- move.l (a0,d1.l),(a6)
- addq.l #4,d1
- moveq #0,d2
- move.b $2(a6),d2
- and.b #$f0,d2
- lsr.b #4,d2
- move.b (a6),d0
- and.b #$f0,d0
- or.b d0,d2
- tst.b d2
- beq.w nt_setregs
- movem.l d0/a5,-(a7) © SECTION 9
- sub.l #$dff0a0,a5
- move.w a5,d0
- lsr.w #4,d0
- lea logo+[[352/8]*51]+2,a5
- move.b #$70,0(a5,d0.w)
- lea logo+[[352/8]*52]+2,a5
- move.b #$f8,0(a5,d0.w)
- lea logo+[[352/8]*53]+2,a5
- move.b #$f8,0(a5,d0.w)
- lea logo+[[352/8]*54]+2,a5
- move.b #$f8,0(a5,d0.w)
- lea logo+[[352/8]*55]+2,a5
- move.b #$70,0(a5,d0.w)
- movem.l (a7)+,d0/a5
- moveq #0,d3
- lea nt_samplestarts(pc),a1
- move.l d2,d4
- subq.l #$1,d2
- asl.l #2,d2
- mulu #$1e,d4
- move.l (a1,d2.l),$4(a6)
- move.w (a3,d4.l),$8(a6)
- move.w $2(a3,d4.l),$12(a6)
- move.w $4(a3,d4.l),d3
- tst.w d3
- beq.s nt_noloop
- move.l $4(a6),d2
- asl.w #1,d3
- add.l d3,d2
- move.l d2,$a(a6)
- move.w $4(a3,d4.l),d0
- add.w $6(a3,d4.l),d0
- move.w d0,8(a6)
- move.w $6(a3,d4.l),$e(a6)
- move.w $12(a6),$8(a5)
- bra.s nt_setregs
- nt_noloop
- move.l $4(a6),d2
- add.l d3,d2
- move.l d2,$a(a6)
- move.w $6(a3,d4.l),$e(a6)
- move.w $12(a6),$8(a5)
- nt_setregs
- move.w (a6),d0
- and.w #$fff,d0
- beq.w nt_checkcom2
- move.b $2(a6),d0
- and.b #$F,d0
- cmp.b #$3,d0
- bne.s nt_setperiod
- bsr.w nt_setmyport
- bra.w nt_checkcom2
- nt_setperiod
- move.w (a6),$10(a6)
- and.w #$fff,$10(a6)
- move.w $14(a6),d0
- move.w d0,$dff096
- moveq #0,d7
- move.b d7,$1b(a6)
- move.l $4(a6),(a5)
- move.w $8(a6),$4(a5)
- move.w $10(a6),d0
- and.w #$fff,d0
- move.w d0,$6(a5)
- move.w $14(a6),d0
- lea nt_dmacon(pc),a1
- or.w d0,(a1)
- bra.w nt_checkcom2
- nt_setdma
- move.w #$12c,d0
- nt_wait dbf d0,nt_wait
- move.w nt_dmacon(pc),d0
- or.w #$8000,d0
- move.w d0,$dff096
- move.w #$12c,d0
- nt_wai2 dbf d0,nt_wai2
- lea $dff000,a5
- lea nt_voice4(pc),a6
- move.l $a(a6),$d0(a5)
- move.w $e(a6),$d4(a5)
- lea nt_voice3(pc),a6
- move.l $a(a6),$c0(a5)
- move.w $e(a6),$c4(a5)
- lea nt_voice2(pc),a6
- move.l $a(a6),$b0(a5)
- move.w $e(a6),$b4(a5)
- lea nt_voice1(pc),a6
- move.l $a(a6),$a0(a5)
- move.w $e(a6),$a4(a5)
- lea nt_pattpos(pc),a1
- add.w #$10,(a1)
- cmp.w #$400,(a1)
- bne.s nt_endr
- nt_nex lea nt_pattpos(pc),a1
- moveq #0,d7
- move.w d7,(a1)
- lea nt_break(pc),a1
- moveq #0,d7
- move.b d1,(a1)
- lea nt_songpos(pc),a1
- addq.b #1,(a1)
- and.b #$7f,(a1)
- move.b (a1),d1
- cmp.b nt_data+$3b6,d1
- bne.s nt_endr
- move.b nt_data+$3b7,(a1)
- nt_endr lea nt_break(pc),a1
- tst.b (a1)
- bne.s nt_nex
- movem.l (a7)+,d0-a6
- rts
- nt_setmyport
- move.w (a6),d2
- and.w #$fff,d2
- move.w d2,$18(a6)
- move.w $10(a6),d0
- moveq #0,d7
- move.b d7,$16(a6)
- cmp.w d0,d2
- beq.s nt_clrport
- bge.s nt_rt
- move.b #$1,$16(a6)
- rts
- nt_clrport
- moveq #0,d7
- move.w d7,$18(a6)
- nt_rt rts
- nt_myport
- move.b $3(a6),d0
- beq.s nt_myslide
- move.b d0,$17(a6)
- moveq #0,d7
- move.b d7,$3(a6)
- nt_myslide
- tst.w $18(a6)
- beq.s nt_rt
- moveq #0,d0
- move.b $17(a6),d0
- tst.b $16(a6)
- bne.s nt_mysub
- add.w d0,$10(a6)
- move.w $18(a6),d0
- cmp.w $10(a6),d0
- bgt.s nt_myok
- move.w $18(a6),$10(a6)
- moveq #0,d7
- move.w d7,$18(a6)
- nt_myok move.w $10(a6),$6(a5)
- rts
- nt_mysub
- sub.w d0,$10(a6)
- move.w $18(a6),d0
- cmp.w $10(a6),d0
- blt.s nt_myok
- move.w $18(a6),$10(a6)
- moveq #0,d7
- move.w d7,$18(a6)
- move.w $10(a6),$6(a5)
- rts
- nt_vib move.b $3(a6),d0
- beq.s nt_vi
- move.b d0,$1a(a6)
- nt_vi move.b $1b(a6),d0
- lea nt_sin(pc),a4
- lsr.w #$2,d0
- and.w #$1f,d0
- moveq #0,d2
- move.b (a4,d0.w),d2
- move.b $1a(a6),d0
- and.w #$f,d0
- mulu d0,d2
- lsr.w #$6,d2
- move.w $10(a6),d0
- tst.b $1b(a6)
- bmi.s nt_vibmin
- add.w d2,d0
- bra.s nt_vib2
- nt_vibmin
- sub.w d2,d0
- nt_vib2 move.w d0,$6(a5)
- move.b $1a(a6),d0
- lsr.w #$2,d0
- and.w #$3c,d0
- add.b d0,$1b(a6)
- rts
- nt_nop move.w $10(a6),$6(a5)
- rts
- nt_checkcom
- move.w $2(a6),d0
- and.w #$fff,d0
- beq.s nt_nop
- move.b $2(a6),d0
- and.b #$f,d0
- tst.b d0
- beq.w nt_arpeggio
- cmp.b #$1,d0
- beq.s nt_portup
- cmp.b #$2,d0
- beq.w nt_portdown
- cmp.b #$3,d0
- beq.w nt_myport
- cmp.b #$4,d0
- beq.w nt_vib
- move.w $10(a6),$6(a5)
- cmp.b #$a,d0
- beq.s nt_volslide
- rts
- nt_volslide
- moveq #0,d0
- move.b $3(a6),d0
- lsr.b #4,d0
- tst.b d0
- beq.s nt_voldown
- add.w d0,$12(a6)
- cmp.w #$40,$12(a6)
- bmi.s nt_vol2
- move.w #$40,$12(a6)
- nt_vol2 move.w $12(a6),$8(a5)
- rts
- nt_voldown
- moveq #0,d0
- move.b $3(a6),d0
- and.b #$f,d0
- sub.w d0,$12(a6)
- bpl.s nt_vol3
- moveq #0,d7
- move.w d7,$12(a6)
- nt_vol3 move.w $12(a6),$8(a5)
- rts
- nt_portup
- moveq #0,d0
- move.b $3(a6),d0
- sub.w d0,$10(a6)
- move.w $10(a6),d0
- and.w #$fff,d0
- cmp.w #$71,d0
- bpl.s nt_por2
- and.w #$f000,$10(a6)
- or.w #$71,$10(a6)
- nt_por2 move.w $10(a6),d0
- and.w #$fff,d0
- move.w d0,$6(a5)
- rts
- nt_portdown
- moveq #0,d0
- move.b $3(a6),d0
- add.w d0,$10(a6)
- move.w $10(a6),d0
- and.w #$fff,d0
- cmp.w #$358,d0
- bmi.s nt_por3
- and.w #$f000,$10(a6)
- or.w #$358,$10(a6)
- nt_por3 move.w $10(a6),d0
- and.w #$fff,d0
- move.w d0,$6(a5)
- rts
- nt_checkcom2
- move.b $2(a6),d0
- and.b #$f,d0
- cmp.b #$e,d0
- beq.s nt_setfilt
- cmp.b #$d,d0
- beq.s nt_pattbreak
- cmp.b #$b,d0
- beq.s nt_posjmp
- cmp.b #$c,d0
- beq.s nt_setvol
- cmp.b #$f,d0
- beq.s nt_setspeed
- rts
- nt_setfilt
- move.b $3(a6),d0
- and.b #$1,d0
- asl.b #$1,d0
- and.b #$fd,$bfe001
- or.b d0,$bfe001
- rts
- nt_pattbreak
- lea nt_break(pc),a1
- not.b (a1)
- rts
- nt_posjmp
- move.b $3(a6),d0
- subq.b #$1,d0
- lea nt_songpos(pc),a1
- move.b d0,(a1)
- lea nt_break(pc),a1
- not.b (a1)
- rts
- nt_setvol
- cmp.b #$40,$3(a6)
- ble.s nt_vol4
- move.b #$40,$3(a6)
- nt_vol4 move.b $3(a6),$8(a5)
- rts
- nt_setspeed
- cmp.b #$1f,$3(a6)
- ble.s nt_sets
- move.b #$1f,$3(a6)
- nt_sets move.b $3(a6),d0
- beq.s nt_rts2
- lea nt_speed(pc),a1
- move.b d0,(a1)
- lea nt_counter(pc),a1
- moveq #0,d7
- move.b d7,(a1)
- nt_rts2 rts
- nt_sin dc.b $00,$18,$31,$4a,$61,$78,$8d,$a1
- dc.b $b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd
- dc.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5
- dc.b $b4,$a1,$8d,$78,$61,$4a,$31,$18
- nt_periods dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280
- dc.w $025c,$023a,$021a,$01fc,$01e0
- dc.w $01c5,$01ac,$0194,$017d,$0168,$0153
- dc.w $0140,$012e,$011d,$010d,$00fe
- dc.w $00f0,$00e2,$00d6,$00ca,$00be,$00b4
- dc.w $00aa,$00a0,$0097,$008f,$0087
- dc.w $007f,$0078,$0071,$0000,$0000
- nt_speed dc.b 0
- nt_songpos dc.b 0
- nt_pattpos dc.w 0
- nt_counter dc.b 0
- nt_break dc.b 0
- nt_dmacon dc.w 0
- nt_samplestarts dcb.l 31,0
- nt_voice1 dcb.w 10,0
- dc.w 1
- dcb.w 3,0
- nt_voice2 dcb.w 10,0
- dc.w 2
- dcb.w 3,0
- nt_voice3 dcb.w 10,0
- dc.w 4
- dcb.w 3,0
- nt_voice4 dcb.w 10,0
- dc.w 8
- dcb.w 3,0
-
- SECTION this_is_chip,DATA_C
- newcop dc.w $008e,$2479,$0090,$34c9
- dc.w $0092,$0030,$0094,$00d8
- dc.w $0102,$0000,$0104,$0000
- dc.w $0100,$0000
- dc.w $0180,$0000,$0182,$0eef,$0184,$0cce,$0186,$0bbc
- dc.w $0188,$099a,$018a,$0778,$018c,$0556,$018e,$0334
- dc.w $01a2,$0445,$01a4,$0667,$01a6,$0889
- star_p dc.w $0120,$0000,$0122,$0000,$0124,$0000,$0126,$0000
- dc.w $0128,$0000,$012a,$0000,$012c,$0000,$012e,$0000
- dc.w $0130,$0000,$0132,$0000,$0134,$0000,$0136,$0000
- dc.w $0138,$0000,$013a,$0000,$013c,$0000,$013e,$0000
- dc.w $2401,$fffe
- emp1cop dc.w $e0,0,$e2,0,$e4,0
- dc.w $0100,$1200
- dc.w $2c01,$fffe,$0108,$0000,$010a,$0000,$0100,$3200
- planes dc.w $e0,0,$e2,0,$e4,0,$e6,0,$e8,0,$ea,0
- dc.w $5f01,$fffe,$0182,$0724,$5f51,$fffe,$0182,$0eef
- dc.w $6001,$fffe,$0182,$0724,$6051,$fffe,$0182,$0eef
- dc.w $6101,$fffe,$0182,$0724,$6151,$fffe,$0182,$0eef
- dc.w $6201,$fffe,$0182,$0724,$6251,$fffe,$0182,$0eef
- dc.w $6301,$fffe,$0182,$0724,$6351,$fffe,$0182,$0eef
-
- dc.w $6401,$fffe
- emp2cop dc.w $e0,0,$e2,0,$e4,0
- dc.w $0100,$1200
-
- dc.w $6909,$fffe,$0180,$001
- dc.w $6a09,$fffe,$0180,$003
- dc.w $6b09,$fffe,$0180,$005
- dc.w $6c09,$fffe,$0180,$006,$0100,$0000
- dc.w $6d09,$fffe,$0180,$007
- dc.w $6e09,$fffe,$0180,$008
- dc.w $6f09,$fffe,$0180,$007
- dc.w $7009,$fffe,$0180,$006
- dc.w $7109,$fffe,$0180,$005
- dc.w $7201,$fffe
- txtcop dc.w $e0,0,$e2,0,$e8,0,$ea,0
- backcop dc.w $e4,0,$e6,0
- dc.w $0190,$0005,$0192,$0004
- dc.w $7401,$fffe,$0108,$0000,$010a,$0000,$0100,$3400
- colscop dc.w $0182,$0000,$0184,$0000,$0186,$0000
- dc.w $7e01,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $8801,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $9201,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $9c01,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $a601,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $b001,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $ba01,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $c401,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $ce01,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $d801,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $e201,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $ec01,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $f601,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
- dc.w $ffdf,$fffe,$0182,$0000,$0184,$0000,$0186,$0000
-
- dc.w $0a01,$fffe,$0100,$0000
-
- dc.w $0b09,$fffe,$0180,$006
- dc.w $0c09,$fffe,$0180,$007
- dc.w $0d09,$fffe,$0180,$008
- dc.w $0e09,$fffe,$0180,$007
- dc.w $0f09,$fffe,$0180,$006
- emp3cop dc.w $e0,0,$e2,0,$e4,0
- dc.w $0100,$1200
- dc.w $1009,$fffe,$0180,$005
- dc.w $1109,$fffe,$0180,$003
- dc.w $1209,$fffe,$0180,$001
- dc.w $1309,$fffe,$0180,$000
-
- dc.w $1c01,$fffe,$0182,$0ccd,$0184,$0889,$0186,$0444,$0100,$000
- scrcop dc.w $e0,0,$e2,0,$e4,0,$e6,0
- dc.w $1d01,$fffe,$0108,$0002,$010a,$0002,$0100,$2200
- dc.w $2501,$fffe
- emp4cop dc.w $e0,0,$e2,0,$e4,0
- dc.w $0100,$1200
- dc.l $fffffffe
-
- INCDIR "dh1:IncGfx/"
- font INCBIN "Font.GRMBL.RAW" ; 'Font2Ext.RAW'
- logo INCBIN "LOGO.GRMBL.RAW" ; 'Logo.RAW'
- back INCBIN "BACK.GRMBL.RAW" ; 'Back.RAW'
- INCDIR "dh1:modules/"
- nt_data INCBIN "mod.GRMBLWRZ!" ; 'mod.dang'
- dc.l 0
- cnop 0,4
- stars dc.l $1e891f00,$80000000,$20a12100,$00008000
- dc.l $22662300,$80008000,$24d02500,$80000000
- dc.l $26562700,$00008000,$282c2900,$80008000
- dc.l $2a692b00,$80000000,$2cd32d00,$00008000
- dc.l $2efe2f00,$80008000,$30603100,$80000000
- dc.l $32493300,$00008000,$34663500,$80008000
- dc.l $369f3700,$80000000,$38c43900,$00008000
- dc.l $3a413b00,$80008000,$3c603d00,$80000000
- dc.l $3ec23f00,$00008000,$40574100,$80008000
- dc.l $42c44300,$80000000,$44614500,$00008000
- dc.l $46524700,$80008000,$484e4900,$80000000
- dc.l $4a6e4b00,$00008000,$4c0d4d00,$80008000
- dc.l $4e894f00,$80000000,$50a15100,$00008000
- dc.l $52665300,$80008000,$54d05500,$80000000
- dc.l $56565700,$00008000,$585c5900,$80008000
- dc.l $5ad05b00,$80000000,$5c895d00,$00008000
- dc.l $5e715f00,$80008000,$60886100,$80000000
- dc.l $629d6300,$00008000,$646b6500,$80008000
- dc.l $66a86700,$80000000,$68746900,$00008000
- dc.l $6ab46b00,$80008000,$6ccc6d00,$80000000
- dc.l $10af1106,$00008000
- dc.l $12ed1306,$80008000,$14561506,$80000000
- dc.l $164f1706,$00008000,$188d1906,$80008000
- dc.l $1a7c1b06,$80000000,$1ca11d06,$00008000
- dc.l $1ed21f06,$80008000,$20d22106,$80000000
- dc.l $22c22306,$00008000,$24b32506,$80008000
- dc.l $26562706,$80000000,$282c2906,$80000000
- dc.l $2a692b06,$80008000,$2cd32d06,$80000000
- dc.l $2efe2f06,$00008000,$30603106,$80008000
- dc.l $32493306,$80000000,$34663506,$00008000
- dc.l $369f3706,$80008000,$38c43906,$80000000
- dc.l $3a413b06,$00008000,$3cd33d06,$80008000
- dc.l $00000000
- end_stars
-
-
- SECTION this_is_guess_what,BSS_C
- scrdat ds.b 368/8*[16+1]
- txtdat ds.b [[352/8]*150]*2
- empty ds.b [352/8]*30
-